This invention relates to the field of smart cards, and more particularly, this invention relates to driving a signaling device indicative of smart card transactions between a smart card and USB port of a host.
Smart cards are plastic cards having an embedded Integrated Circuit (IC). That IC may be a logic circuit with its associated memories or a microcontroller with its associated memories and software, or a microcontroller with its associated memories and software coupled to a custom circuit block or interface.
To use the computing power of the IC, a smart card makes use of a full set of packaging technologies. For example, the die size varies from 1 mm2 to 30 mm2, but is limited because of the mechanical limitations imposed by the plastic construction of the smart card. The IC is attached to a lead frame and wire-bonding techniques are used to connect the IC pads to the lead frame contacts. Potting or other strengthening methods can be used to protect the IC against chemical and mechanical stresses during manufacturing and are a part of everyday usage of a smart card. Eight contacts are located on one side of the card. The smart card performs transactions with a smart card reader using a serial protocol. The mechanical and electrical specifications for a smart card are published by the International Standard Organization (ISO) as ISO7816-X standards, which have allowed the simple and mass produced magnetic stripe cards to evolve toward the smart card. This natural evolution has allowed smart cards, depending of the IC complexity, of course, to perform pre-paid accounting, cryptographic scheme, personal authentication using a PIN code, biometrics, and java scripts, for example.
ISO documents ISO 7816-1 Physical Characteristics, ISO 7816-2 Dimensions and Locations of the contacts, ISO 7816-3 Electronic signals and transmission protocols, ISO 7816-4 Interindustry Commands for Interchange, and ISO 7816-10 Electronic signals and answer to reset for synchronous cards are incorporated herein by reference.
In operation, smart card readers are recognized by the reader infrastructure or a host computer prior to performing any transaction involving a smart card. The infrastructure runs an application involving the smart card. The half duplex protocol between the smart card and the smart card reader, in which either the smart card sends information to the smart card reader or vice versa, cannot start until a smart card is in place and detected by the smart card reader The infrastructure manages authentication or transactions for pre-paid cards in public telephony, for Bankcards in Point-of-Sale (POS) terminals and Automatic Teller Machines (ATM), for Pay TV providers in set top boxes, and for wireless telecom operators in Subscriber Identification Modules (SIM) used in Global System for Mobile (GSM) terminals. Except for SIM cards, most smart card reader applications use a physical sensor to detect the smart card. This sensor tells the smart card reader when a smart card is in place, i.e., when the smart card lead frame contacts mate with the smart card reader contacts.
When the smart card reader has established that a smart card is in place, a power-up sequence begins. After this power-up sequence has finished, the smart card reader typically provides a clock to the smart card and releases a reset signal. The smart card then executes its stored Operating System (OS). The SIM card, on the other hand, is in place only once with the power-off and used constantly subsequent to its positioning.
The first application for smart card technology was the public telephone system. The smart card die size was typically less than 1 mm2, and only memories and logic circuits were integrated in the IC. The smart card reader used all eight contacts to interface properly with the different smart card generations. When the smart card was inserted in the payphone, the telephone infrastructure authenticated the smart card and the telephone removed xe2x80x9cunitsxe2x80x9d from the smart card.
The banking industry subsequently adopted smart cards. The die size was about 10 mm2, and a microcontroller and its associated memories and software were integrated in the IC. The smart card reader used up to six contacts to interface properly with the different smart card generations. When a smart card was inserted in the ATM or the POS (point-of-sale), the smart card user was authenticated with a PIN code. The smart card could store different items, such as the balance of cash received from an ATM on a per week basis or details of purchases since a last closing date. Based on this information, authorization could be issued on the spot once the PIN had authenticated the debtor. This was accomplished without telephone calls to the bank.
Another application for smart cards has been developed by GSM manufacturers. The die size in a SIM is about 30 mm2, and a microcontroller and its associated memories and software are integrated in the IC. The SIM reader uses five contacts to interface properly with the smart card. The more sophisticated smart card applications are performed in GSM using Java applets.
A new market for the smart card has emerged with the growth of the internet accessed from a personal computer. Secure message, Public Key Infrastructure, Authentication and Electronic Payment are new smart card areas of interest. The smart card acts as an e-commerce facilitator. One advantage of a smart card compared to other solutions is the smart card PIN located in its memory that is never communicated in any transaction.
Presently, a smart card is inserted into a smart card reader connected to a host computer. Two protocols are involved in supporting transactions between the smart card and host computer. The first protocol complies with the ISO-7816-3, which provides detailed requirements for the serial interface between smart card and smart card reader. The reader is connected to the computer via a serial port, a parallel port, or the Universal Serial Bus (USB), using a second protocol. The smart card reader contains electronic circuits and embedded software that enable communication between the smart card using the first protocol and the host computer using the second protocol. The host computer is loaded with any appropriate drivers to support the smart card reader.
Many countries have begun to use the smart card in the PC environment. The die size used in these applications ranges from 5 mm2 to 30 mm2, and the microcontroller and its associated memories and software are integrated in the IC typically with a cryptocontroller. Sometimes, a bio-sensor is integrated. The smart card reader uses at least four or five contacts to interface properly with the smart card in these applications.
Since the late 1990""s, the universal serial bus (USB) has become firmly established and has gained wide acceptance in the PC marketplace. The USB was developed in response to a need for a standard interface that extends the concept of xe2x80x9cplug and playxe2x80x9d to devices external to a PC. It has enabled users to install and remove external peripheral devices without opening the PC case or removing power from the PC. The USB provides a low-cost, high performance, half-duplex serial interface that is easy to use and readily expandable.
USB uses four wires. The power supply is carried with two wires (VBus and ground), and data is carried with the other two wires (D+, Dxe2x88x92). The latest version of the USB is currently defined by the Universal Serial Bus Specification Revision 2.0, written and controlled by USB Implementers Forum, Inc., a non-profit corporation founded by the group of companies that developed the USB Specification.
In particular, Chapter 5 USB Data Flow Model, Chapter 7 Electrical, Chapter 8 Protocol Layer and Chapter 9 USA Device Framework of Universal Serial Bus Specification are incorporated herein by reference. The increasingly widespread use of the USB has led smart card reader manufacturers to develop USB interfaces for connection of their products to host computers to complement the existing serial and parallel interfaces.
Although some industries, e.g., banking, have used smart card technology for years, internet users have not taken advantage of smart card technology. Although most internet transactions originate from a PC, and despite PC manufacturer efforts, the PC industry has failed to install on each PC a cost effective smart card reader meeting the specific needs of web related applications. To aid this process, xe2x80x9cdual modexe2x80x9d smart cards have been developed.
U.S. Pat. No. 6,439,464 to Fruhauf et al., the disclosure which is hereby incorporated by reference in its entirety, discloses a dual mode smart card IC that operates in a first mode, such as an ISO mode in accordance with International Standards Organization 7816 (ISO) protocol, and a USB mode in accordance with the universal serial bus (USB) protocol. This dual-mode IC is implemented as a smart card and includes a microprocessor, switching block, and external interface.
A voltage supply pad, a ground or reference voltage pad, a first set of pads for the first mode, and a second set of pads for the USB mode, form the interface. The first set of pads preferably includes a reset pad, clock pad and an input/output pad in accordance with the ISO 7816 protocol. The second set of pads preferably includes a D+ pad and a Dxe2x88x92 pad in accordance with the USB protocol. The IC further includes a mode configuration circuit comprising a USB mode detector connected to at least one of the D+ and Dxe2x88x92 pads. A pull-up resistor preferably connects to one of the D+ and xe2x88x92 pads and a USB voltage detector preferably connects to the voltage supply pad. A latching circuit is connected between the switching block and USB detector, and a control register is connected to the latching circuit for storing a low configuration indicator.
When the dual-mode IC is configured in the USB mode, the first set of pads is disabled based on verification of the USB voltage. When the dual-mode IC is configured in the ISO mode, the second set of pads is disabled after the USB-mode condition is not detected.
Because of the increased use of USB smart card devices, smart card reader manufacturers have developed USB interfaces to connect their products to host computers and complement existing serial and parallel interfaces. As noted before, because of the differences between the serial-interface defined by ISO 7816, and the serial interface defined by the USB specification, smart cards have not been directly compatible with this USB specification. Even though the newer smart card reader complexity has been transferred into the host computer, thus reducing overall costs, the USB smart card still requires a pass-through connector and a driver to communicate with the computer. When smart cards have been used with USB devices, it has also been found advantageous to provide a visual indication of any successful data transfers between the host computer and IC module positioned on a smart card.
As disclosed in international WIPO publication WO 02/23357, the disclosure which is hereby incorporated by reference in its entirety, a smart card supports the serial interface defined by the USB specification and allows a user to visualize data flow to and from a smart card. A communication pipe is established between the client software in the host computer and the USB smart card end points.
A USB smart card serial engine captures the downstream traffic and delivers it to a smart card microcontroller. The USB smart card serial engine broadcasts the upstream traffic from the smart card microcontroller to the host computer. Every time a packet transfer occurs without error, the USB smart card serial engine hardware generates a xe2x80x9cCorrect Transferxe2x80x9d (CTR) flag, resulting in an interrupt. The CTR signal drives a first stage of a 10-bit counter. One output drives an input/output (I/O) buffer connected to an I/O connector pin, which is connected to an LED on a smart card reader or token. The LED blinks at a pace set by the USB traffic. These functions are included in the single IC.
The output of a counter is selected such that a user is provided with a perceptible indication of signaling transaction activity. The LED is driven by the output buffer positioned within the smart card module. This could be a current source circuit connected to a ground (GND) reference voltage or current source circuit connected to a VBus supply voltage. It could also be a switched circuit connected to a VBus supply voltage and a switch circuit connected to a ground reference voltage.
This traffic signaling system as described is permanently tied to a specific function. It cannot change the meaning of the modulated signal to the LED. There is only one correct meaning, i.e., a xe2x80x9ccorrect transferxe2x80x9d has occurred. There is also no mechanism to disable the signal used to drive the LED to conserve energy. In a power-sensitive activity, the power budget should be used sparingly and only when required.
It is therefore an object of the present invention to overcome the disadvantages as described above to enhance USB traffic signaling recognition beyond signaling that a xe2x80x9ccorrect transferxe2x80x9d has occurred.
The present invention is advantageous and allows signaling to be modulated based on operational attributes of the smart card and/or transactions between the smart card and USB port of the host. The term xe2x80x9csmart cardxe2x80x9d can also refer to smart card modules and tokens as used herein.
In one aspect of the present invention, a smart card includes a card body and integrated circuit carried by the card body. It includes a microprocessor that communicates with the host and is operative for driving a signaling device indicative of smart card transactions between the smart card and a USB port of the host. The microprocessor is operative for modulating the signaling device based on operational attributes of the smart card and/or transactions between the smart card and USB port of the host. A memory connected to the microprocessor would contain instructions for initiating and completing packet communications with a host.
In another aspect of the present invention, the microprocessor is operative for generating a signal for activating an LED as the signaling device and modulating the LED. The microprocessor is operative for modulating the signaling device based on a number of factors, including host OUT transactions, host IN transactions, USB error conditions, device busy conditions, the USB transfer type, the end points involved in a transaction, the smart card configuration, alternate settings used by the smart card, and vendor specific requests. The microprocessor is also operative for disabling the signaling device by generating a disable signal to the signaling device.
In yet another aspect of the present invention, a method for signaling smart card transactions between a universal serial bus (USB) smart card and USB port of a host is set forth and comprises the steps of signaling a transaction between a smart card and the USB port and modulating the signaling based on operational attributes of the smart card and/or transactions between the smart card and USB port of the host.
An integrated circuit is also set forth and disclosed and comprises at least one card memory for storing a set of instructions relating to initiating and completing smart card transactions between a universal serial bus (USB) smart card and USB port of a host. The integrated circuit includes a microprocessor operatively connected to the memory for communicating with the host and is operative for driving a signaling device indicative of smart card transactions between the smart card and the USB port of a host and operative for modulating the signaling device based on operational attributes of the smart card and/or transactions between the smart card and USB port of the host.